﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using KacincisinProject.Data;
using KacincisinProject.ViewModels;

namespace KacincisinProject.Controllers
{
    public class KurumTipleriController : Controller
    {
        private KacincisinDBEntities database = new KacincisinDBEntities();
        //
        // GET: /KurumTipleri/

        public ActionResult KurumTipleriListele()
        {
            List<KurumTipleri> kurumtip = database.KurumTipleri.ToList();

            return View(kurumtip);
        }
        public ActionResult KurumTipleriOlustur()
        {

            return View();

        }
        [HttpPost]
        public ActionResult KurumTipleriOlustur(KurumTipleriViewModel model)
        {

            if (ModelState.IsValid)
            {

                KurumTipleri yenikurumtipi = new KurumTipleri();
                yenikurumtipi.KurumTipi= model.KurumTipi;

                database.KurumTipleri.Add(yenikurumtipi);
                database.SaveChanges();


                return RedirectToAction("KurumTipleriListele");
            }
            return View(model);
        }
        public ActionResult KurumTipleriGuncelle(int id)
        {
            KurumTipleri kurumtipi = database.KurumTipleri.Find(id);

            KurumTipleriViewModel model = new KurumTipleriViewModel();


            model.KurumTipId = kurumtipi.KurumTipId;
            model.KurumTipi= kurumtipi.KurumTipi;

            return View(model);
        }
        [HttpPost]
        public ActionResult KurumTipleriGuncelle(KurumTipleriViewModel model)
        {
            if (ModelState.IsValid)
            {
                KurumTipleri yenikurumtipi = new KurumTipleri();

                yenikurumtipi.KurumTipId = model.KurumTipId;
                yenikurumtipi.KurumTipi = model.KurumTipi;



                database.Entry(yenikurumtipi).State = EntityState.Modified;
                database.SaveChanges();

                return RedirectToAction("KurumTipleriListele");
            }

            return View(model);

        }
        public ActionResult KurumTipleriSil(int id)
        {
            KurumTipleri kurumtipi = database.KurumTipleri.Find(id);

            //Eğer listenin içinde herhangi bir eleman varsa Any() true döndürür.
            if (kurumtipi.Kurumlar.Any())
            {
                return RedirectToAction("KurumTipleriListele");
            }

            KurumTipleriViewModel model = new KurumTipleriViewModel();


            model.KurumTipId = kurumtipi.KurumTipId;
            model.KurumTipi = kurumtipi.KurumTipi;

            return View(model);
        }

        [HttpPost]
        public ActionResult KurumTipleriSil(KurumTipleriViewModel model)
        {
            if (ModelState.IsValid)
            {
                KurumTipleri yenikurumtipi = new KurumTipleri();

                yenikurumtipi.KurumTipId = model.KurumTipId;
                yenikurumtipi.KurumTipi = model.KurumTipi;

                database.Entry(yenikurumtipi).State = EntityState.Deleted;
                database.SaveChanges();

                return RedirectToAction("KurumTipleriListele");
            }
            return View(model);
        }

    }
}
